home *** CD-ROM | disk | FTP | other *** search
/ Disc to the Future 2 / Disc to the Future Part II Programmer's Reference (Wayzata Technology)(6013)(1992).bin / MAC / THINKC / TCL1 / CFLAVORS / NOTICE next >
Text File  |  1989-11-09  |  4KB  |  75 lines

  1. This notice covers the following topics:
  2.  
  3. 1. What is CFlavors? (briefly)
  4.  
  5. 2. Who is the author?
  6.  
  7. 3. Why was a demonstration version of CFlavors released?
  8.  
  9. 1. (What is CFlavors?)  CFlavors was designed to be a versatile, fully
  10. featured object oriented system modeled after the MIT flavors system found
  11. on LISP machines.  CFlavors was developed to be as portable as possible by
  12. adhering to the C standard as outlined by Kernighan and Ritchie in "The C
  13. Programming Language" as much as possible and by using a general C type
  14. syntax for all CFlavors macros.
  15.  
  16. CFlavors has almost all the features that even the most experience flavor
  17. hacker could want.  Multiple inheritance is available and that inheritance
  18. can be controlled by the use of required and included flavors.  Several
  19. method combinations are supported in addition to the default daemon
  20. combination which includes before and after daemons as well as whoppers.  A
  21. vanilla flavor exists along with many methods for the base flavor.  The
  22. programmer has access to a NULL terminated array of flavor pointers for all
  23. the flavors.  Some additions have been made to LISP flavors; class variables
  24. are supported and broadcasting a message to all instances of a flavor is
  25. possible.  For more detailed information on each function see the reference
  26. manual or refer to the cflavors.h header file.  To get a better
  27. understanding of flavors refer to the manuals from a LISP machine or chapter
  28. 2 (What's a Flavor) of "LISP LORE: A Guide to Programming the LISP Machine"
  29. by Hank Bromley, which is an excellent book which touches on the subject.
  30.  
  31. Although CFlavors has many similarities to LISP flavors it is not exactly
  32. the same.  After all CFlavors is for C not LISP.  Conceptually CFlavors
  33. follows the LISP flavors model fairly closely and any experience LISP
  34. flavors programmer should be able to utilize CFlavors quickly.  The
  35. similarity between LISP flavors and CFlavors should make code translation
  36. from LISP to C much easier.
  37.  
  38. CFlavors is written to be as portable as possible and currently runs a
  39. several machines including SUN workstations, MIPs, and IBM PCs.
  40.  
  41. 2. (Who is the author?)  My (Pete Ohler) first exposure to object oriented
  42. programming was in the early 1970s when Smalltalk was first introduced.
  43. Most of my experience in object oriented programming has been gained in the
  44. last 5 or 6 years since I completed my master degree in computer science
  45. (concentration on AI).  I have used LISP Flavors more than any other object
  46. oriented system.  This experience was gained by writing extensive amounts
  47. of code on a Symbolics LISP machine.
  48.  
  49. After starting to learn C, and becoming frustrated with the lack of support
  50. for real object oriented programming I embarked on adding the features
  51. needed to support a good object oriented environment.  The first work on
  52. designing the package began in 1987.  The first version of CFlavors was only
  53. distributed to a small group. (i.e., The new company I joined shortly after
  54. starting CFlavors) Since then CFlavors has gone through many changes and
  55. revisions.
  56.  
  57. Today the user base is still fairly small although there are many hundreds
  58. of thousands of lines of code written that rely on CFlavors.
  59.  
  60. 3. (Why was a demonstration version of CFlavors released?)  The users of
  61. CFlavors including myself have found that it provides the tools needed to
  62. develop code that is reusable and easy to extend and modify.  It is a
  63. professional package that has had a planned development and still has a well
  64. laid out growth strategy.
  65.  
  66. I would like to provide this capability to a wider audience and do not have
  67. the time or experience needed to distribute and support CFlavors in such a
  68. way that I can still extend the package and add new features to it.
  69.  
  70. The purpose of this release of a demonstration version of CFlavors is to;
  71. collect feedback from potential users, to notify the programming community
  72. that there is an alternative object oriented programming capability that
  73. offers features that are not found in any other C or C++ package, and to
  74. generate interest in solving my distribution problem.
  75.